<?php
session_start(); //需要在任何html输出之前使用
$username = trim($_POST['username']);   //数字下标，索引数组。非数字下标（字符串下标），关联数组
$pw = trim($_POST['password']); //变量命名规则：只能由字母、数字、下划线构成。且不能由数字开头。
$code = trim($_POST['code']);
$a = array();
if(strtolower($code) !== strtolower($_SESSION["captcha"])){
    $a['code'] = -1;
    $a['errMsg'] = '验证码错误';
}
if(!preg_match('/^[a-zA-Z\d]{3,10}$/',$username)){
    //preg_match如果匹配到字符串，则返回1，否则返回0
    $a['code'] = -1;
    $a['errMsg'] = '用户名必填，且只能由大小写字符和（或）数字构成，且长度在3到10个字符之间';
}
if(!preg_match('/^[a-zA-Z\d_*]{6,10}$/',$pw)){
    //preg_match如果匹配到字符串，则返回1，否则返回0
    $a['code'] = -1;
    $a['errMsg'] ='密码必填，且只能由大小写字符和（或）数字，以及_、*构成，且长度在6到10个字符之间';
}
if($a['code'] == -1){
    echo json_encode($a);
    exit;
}
require_once('conn.php');
$sql = "select admin,pic,id from userinfo where username = '$username' and pw = '" . md5($pw) . "'";
$result = mysqli_query($conn,$sql);
//接下来判断一下$result中是否有记录

if(mysqli_num_rows($result)){
    $a['code'] = 1;//1表示用户名和密码正确
    $_SESSION['loggedUsername'] = $username;
    $info = mysqli_fetch_array($result,MYSQLI_ASSOC);
    if($info['admin']){
        //说明当前是管理员，则设置管理员标志
        $_SESSION['isAdmin'] = 1;
        $a['isAdmin'] = 1;
    }
    else{
        //说明当前不是管理员，则删除管理员标志
        unset($_SESSION['isAdmin']);
        $a['isAdmin'] = 0;
    }
    $_SESSION['pic'] = $info['pic'];
    $_SESSION['loggedUserID'] = $info['id'];
    $a['pic'] = $info['pic'];
    $a['username'] = $username;
}
else{
    $a['code'] = -1;//-1表示用户名和密码不可用
    $a['errMsg'] = '密码错误';
    unset($_SESSION['loggedUsername']);
    unset($_SESSION['isAdmin']);
}
echo json_encode($a);